package com.ruiysoft.crm.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 *
 * </p>
 *
 * @author Yanghu
 * @since 2019-04-13
 */
public class BizCallLog extends Model<BizCallLog> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 客户ID
     */
    @TableField("clientId")
    private Integer clientId;

    /**
     * 姓名
     */
    private String name;

    /**
     * 分机号码
     */
    @TableField("extensionNumber")
    private String extensionNumber;

    /**
     * 通话时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("callTime")
    private Date callTime;

    /**
     * 操作类型
     */
    @TableField("operationType")
    private String operationType;

    /**
     * 呼叫类别
     */
    @TableField("callType")
    private String callType;
    /**
     * 呼叫类别
     */
    @TableField(value = "carNo",exist = false)
    private String carNo;

    /**
     * 呼叫号码
     */
    @TableField("callNo")
    private String callNo;

    /**
     * 通话时长
     */
    @TableField("talkTime")
    private Integer talkTime;

    /**
     * 有效时长
     */
    @TableField("effectiveTime")
    private Integer effectiveTime;

    /**
     * 问候语
     */
    private String greetings;

    /**
     * 探寻需求
     */
    @TableField("probingDemand")
    private String probingDemand;

    /**
     * 服务介绍
     */
    @TableField("ServiceIntroduction")
    private String ServiceIntroduction;

    /**
     * 异议处理
     */
    @TableField("objectionHandle")
    private String objectionHandle;

    /**
     * 促成
     */
    private String facilitate;

    /**
     * 结束语
     */
    @TableField("concludingWord")
    private String concludingWord;

    /**
     * 是否合格
     */
    @TableField("isQualified")
    private String isQualified;

    /**
     * 备注信息
     */
    private String note;

    /**
     * 录音路径
     */
    @TableField("mediaUrl")
    private String mediaUrl;

    /**
     * 录音格式
     */
    @TableField("mediaFormat")
    private String mediaFormat;

    /**
     * 录音大小
     */
    @TableField("mediaSize")
    private Double mediaSize;

    /**
     * 是否可下载
     */
    @TableField("isDonwLoad")
    private String isDonwLoad;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("createDate")
    private Date createDate;

    /**
     * 最后修改时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("modificationDate")
    private Date modificationDate;

    /**
     * 当前机构ID
     */
    @TableField("enterprise_id")
    private String enterpriseId;

    /**
     * 创建人ID
     */
    @TableField("createId")
    private Integer createId;

    /**
     * 每次通话都会生成一个uuid
     */
    @TableField("channel_uuid")
    private String channelUuid;

    /**
     * 质检员姓名
     */
    @TableField("QCName")
    private String QCName;

    /**
     * 质检员Id
     */
    @TableField("QCId")
    private String QCId;

    /**
     * 质检时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("QCDate")
    private Date QCDate;

    /**
     * 是否首次通话
     */
    @TableField("fristCall")
    private String fristCall;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getClientId() {
        return clientId;
    }

    public void setClientId(Integer clientId) {
        this.clientId = clientId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getExtensionNumber() {
        return extensionNumber;
    }

    public void setExtensionNumber(String extensionNumber) {
        this.extensionNumber = extensionNumber;
    }

    public Date getCallTime() {
        return callTime;
    }

    public void setCallTime(Date callTime) {
        this.callTime = callTime;
    }

    public String getOperationType() {
        return operationType;
    }

    public void setOperationType(String operationType) {
        this.operationType = operationType;
    }

    public String getCallType() {
        return callType;
    }

    public void setCallType(String callType) {
        this.callType = callType;
    }

    public String getCallNo() {
        return callNo;
    }

    public void setCallNo(String callNo) {
        this.callNo = callNo;
    }

    public Integer getTalkTime() {
        return talkTime;
    }

    public void setTalkTime(Integer talkTime) {
        this.talkTime = talkTime;
    }


    public String getChannelUuid() {
        return channelUuid;
    }

    public void setChannelUuid(String channelUuid) {
        this.channelUuid = channelUuid;
    }

    public Integer getEffectiveTime() {
        return effectiveTime;
    }

    public void setEffectiveTime(Integer effectiveTime) {
        this.effectiveTime = effectiveTime;
    }

    public String getGreetings() {
        return greetings;
    }

    public void setGreetings(String greetings) {
        this.greetings = greetings;
    }

    public String getProbingDemand() {
        return probingDemand;
    }

    public void setProbingDemand(String probingDemand) {
        this.probingDemand = probingDemand;
    }

    public String getServiceIntroduction() {
        return ServiceIntroduction;
    }

    public void setServiceIntroduction(String ServiceIntroduction) {
        this.ServiceIntroduction = ServiceIntroduction;
    }

    public String getObjectionHandle() {
        return objectionHandle;
    }

    public void setObjectionHandle(String objectionHandle) {
        this.objectionHandle = objectionHandle;
    }

    public String getFacilitate() {
        return facilitate;
    }

    public void setFacilitate(String facilitate) {
        this.facilitate = facilitate;
    }

    public String getConcludingWord() {
        return concludingWord;
    }

    public void setConcludingWord(String concludingWord) {
        this.concludingWord = concludingWord;
    }

    public String getIsQualified() {
        return isQualified;
    }

    public void setIsQualified(String isQualified) {
        this.isQualified = isQualified;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public String getMediaUrl() {
        return mediaUrl;
    }

    public void setMediaUrl(String mediaUrl) {
        this.mediaUrl = mediaUrl;
    }

    public String getMediaFormat() {
        return mediaFormat;
    }

    public void setMediaFormat(String mediaFormat) {
        this.mediaFormat = mediaFormat;
    }

    public Double getMediaSize() {
        return mediaSize;
    }

    public void setMediaSize(Double mediaSize) {
        this.mediaSize = mediaSize;
    }

    public String getIsDonwLoad() {
        return isDonwLoad;
    }

    public void setIsDonwLoad(String isDonwLoad) {
        this.isDonwLoad = isDonwLoad;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Date getModificationDate() {
        return modificationDate;
    }

    public void setModificationDate(Date modificationDate) {
        this.modificationDate = modificationDate;
    }

    public String getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(String enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public Integer getCreateId() {
        return createId;
    }

    public void setCreateId(Integer createId) {
        this.createId = createId;
    }

    public String getQCName() {
        return QCName;
    }

    public void setQCName(String QCName) {
        this.QCName = QCName;
    }

    public String getQCId() {
        return QCId;
    }

    public void setQCId(String QCId) {
        this.QCId = QCId;
    }

    public Date getQCDate() {
        return QCDate;
    }

    public void setQCDate(Date QCDate) {
        this.QCDate = QCDate;
    }

    public String getFristCall() {
        return fristCall;
    }

    public void setFristCall(String fristCall) {
        this.fristCall = fristCall;
    }

    public String getCarNo() {
        return carNo;
    }

    public void setCarNo(String carNo) {
        this.carNo = carNo;
    }

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "BizCallLog{" +
                "id=" + id +
                ", clientId=" + clientId +
                ", name=" + name +
                ", extensionNumber=" + extensionNumber +
                ", callTime=" + callTime +
                ", operationType=" + operationType +
                ", callType=" + callType +
                ", callNo=" + callNo +
                ", talkTime=" + talkTime +
                ", effectiveTime=" + effectiveTime +
                ", greetings=" + greetings +
                ", probingDemand=" + probingDemand +
                ", ServiceIntroduction=" + ServiceIntroduction +
                ", objectionHandle=" + objectionHandle +
                ", facilitate=" + facilitate +
                ", concludingWord=" + concludingWord +
                ", isQualified=" + isQualified +
                ", note=" + note +
                ", mediaUrl=" + mediaUrl +
                ", mediaFormat=" + mediaFormat +
                ", mediaSize=" + mediaSize +
                ", isDonwLoad=" + isDonwLoad +
                ", createDate=" + createDate +
                ", modificationDate=" + modificationDate +
                ", enterpriseId=" + enterpriseId +
                ", createId=" + createId +
                "}";
    }
}
